import { GetAvatar, UploadAvatar, } from './service';
// import { meInfo } from '@/services/user';

const Model = {
    namespace: 'accountSettings',
    state: {
        currentUser: {name: "jieTan"},
        province: [],
        city: [],
        isLoading: false,
    },
    effects: {
        // *fetch(_, { call, put }) {
        //     console.log("fetch>>>>>>")
        //     const response = yield call(queryUsers);
        //     yield put({
        //         type: 'save',
        //         payload: response,
        //     });
        // },

        // *fetchCurrent(_, { call, put }) {
        //     console.log("fetchCurrent>>>>>>")
        //     const response = yield call(queryCurrent);
        //     yield put({
        //         type: 'saveCurrentUser',
        //         payload: response,
        //     });
        // },

        // *fetchProvince(_, { call, put }) {
        //     yield put({
        //         type: 'changeLoading',
        //         payload: true,
        //     });
        //     const response = yield call(queryProvince);
        //     yield put({
        //         type: 'setProvince',
        //         payload: response,
        //     });
        // },

        // *fetchCity({ payload }, { call, put }) {
        //     const response = yield call(queryCity, payload);
        //     yield put({
        //         type: 'setCity',
        //         payload: response,
        //     });
        // },

        *getAvatar({ payload={} }, { call, put }){
            if (payload){
                const response = yield call(GetAvatar, payload);
                return response;
            }
        },

        *uploadAvatar({ payload = {} }, { call }){
            if (payload) {
                const response = yield call(UploadAvatar, payload);
                return response;
            }
        },
    },
    reducers: {
        saveCurrentUser(state, action) {
            console.log("===>> action", action)
            return { ...state, currentUser: action.payload || {} };
        },

        changeNotifyCount(state = {}, action) {
            return {
                ...state,
                currentUser: {
                    ...state.currentUser,
                    notifyCount: action.payload.totalCount,
                    unreadCount: action.payload.unreadCount,
                },
            };
        },

        setProvince(state, action) {
            return { ...state, province: action.payload };
        },

        setCity(state, action) {
            return { ...state, city: action.payload };
        },

        changeLoading(state, action) {
            return { ...state, isLoading: action.payload };
        },
    },
};
export default Model;
